﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebServiceDSDG6.Persistencia;
using RRTWSEntityDSD.Dominio;
using System.Data.SqlClient;

namespace RRTWSEntityDSD.Dao
{
    public class EquipoDAO : BaseDAO<Equipo, int>
    {
        public RRTWSEntityDSD.Dominio.Equipo crear(string nombre, string descripcion)
        {
            Equipo e = new Equipo();
            e.nombre = nombre;
            e.id_contenido = descripcion;
            return Crear(e);
        }

        public List<RRTWSEntityDSD.Dominio.Equipo> getEquiposPorEvento(int evento)
        {
            try
            {
                string query = " select * from EQUIPO where EQU_ID_EQUIPO in ( select EQU_ID_EQUIPO from EVENTO_EQUIPO eeq where EVE_ID_EVE_DEPORTIVO in ( select EVE_ID_EVE_DEPORTIVO from EVENTO_DEPORTIVO where EVE_ID_EVE_DEPORTIVO = " + evento + " ))";

                SqlCommand cmd = new SqlCommand(query, cnx);
                cnx.Open();
                using (SqlDataReader dr = cmd.ExecuteReader())
                {

                    List<Equipo> listaEquipos = new List<Equipo>();
                    while (dr.Read())
                    {

                        if (!Convert.IsDBNull(dr["EQU_ID_EQUIPO"]))
                        {
                            Equipo a = new Equipo()
                            {
                                idequipo = int.Parse(dr["EQU_ID_EQUIPO"].ToString()),
                                nombre = dr["EQU_NOMBRE"].ToString(),
                                id_contenido = dr["EST_ID_CONTENIDO"].ToString()
                            };
                            listaEquipos.Add(a);
                        }
                    }

                    return listaEquipos;
                }
            }
            catch (Exception e)
            {
                throw new InvalidOperationException("Error de conexiones  ");
            }

            finally
            {
                cnx.Close();
            }
            return null;
        }
    }
}